]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
main: don't use a BindConstraint for uiGroup
authorStefano Facchini <stefano.facchini@gmail.com>
Wed, 22 Feb 2012 17:18:15 +0000 (18:18 +0100)
committerStefano Facchini <stefano.facchini@gmail.com>
Fri, 13 Apr 2012 13:18:06 +0000 (15:18 +0200)
A BindConstraint on the size of uiGroup forces full redraws of the scene.
Instead, implement and use get_preferred_width and get_preferred_height.

https://bugzilla.gnome.org/show_bug.cgi?id=670636

js/ui/main.js

index ac9330c10259e4d26bb8aaf9c622518f0e07cfdc..07a31744cd1cdcda56e1b2c9dc198f54f6800527 100644 (file)
@@ -194,9 +194,16 @@ function start() {
                         for (let i = 0; i < children.length; i++)
                             children[i].allocate_preferred_size(flags);
                     });
-    let constraint = new Clutter.BindConstraint({ source: global.stage,
-                                                  coordinate: Clutter.BindCoordinate.SIZE });
-    uiGroup.add_constraint(constraint);
+    uiGroup.connect('get-preferred-width',
+                    function(actor, forHeight, alloc) {
+                        let width = global.stage.width;
+                        [alloc.min_size, alloc.natural_size] = [width, width];
+                    });
+    uiGroup.connect('get-preferred-height',
+                    function(actor, forWidth, alloc) {
+                        let height = global.stage.height;
+                        [alloc.min_size, alloc.natural_size] = [height, height];
+                    });
     global.window_group.reparent(uiGroup);
     global.overlay_group.reparent(uiGroup);
     global.stage.add_actor(uiGroup);